﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Model
{
    [Serializable]
    public class RiskCriteria{
        private List<RiskCriteriaItem> _safeCriterias = new List<RiskCriteriaItem>();
        private List<RiskCriteriaItem> _envCriterias = new List<RiskCriteriaItem>();
        private List<RiskCriteriaItem> _businessCriterias = new List<RiskCriteriaItem>();

        public RiskCriteria(){
            _safeCriterias.Add(new RiskCriteriaItem("S1", "等同于工业行业中曾经出现过的最灾难性的事故可能导致200人或更多人员死亡（或危及生命的健康影响）可以归入此类","无"));
            _safeCriterias.Add(new RiskCriteriaItem("S2", "灾难性的安全或健康事故，在工厂内或外造成非常大量的人员死亡可能导致50人或更多人员死亡（或危及生命的健康影响）可以归入此类", "无"));
            _safeCriterias.Add(new RiskCriteriaItem("S3", "灾难性的安全或健康事故，在工厂内或外造成大量的人员死亡可能导致10人或更多人员死亡（或危及生命的健康影响）可以归入此类", "0.000001"));
            _safeCriterias.Add(new RiskCriteriaItem("S4", "可能导致3人或更多人员死亡（或危及生命的健康影响）可以归入此类导致工厂人员30人或更多人的伤害或健康影响，包括永久性的伤害和就医超过24小时的情形", "0.00001"));
            _safeCriterias.Add(new RiskCriteriaItem("S5", "导致1至2人死亡，包括急性或慢性、确诊或疑似的个案导致工厂人员10人或更多人的伤害或健康影响，包括永久性的伤害和就医超过24小时的情形", "0.0001"));
            _safeCriterias.Add(new RiskCriteriaItem("S6", "一名或多名永久性至残伤害多名人员非永久性伤害或健康影响误工伤害", "0.001"));
            _safeCriterias.Add(new RiskCriteriaItem("S7", "单起或多起可记录的伤害或健康影响", "0.01"));
            _safeCriterias.Add(new RiskCriteriaItem("S8", "应急处理（如医疗包扎或止血）单例或多例过度暴露导致的明显的刺激或疼痛，但没有实质性的健康影响", "0.1"));
            _envCriterias.Add(new RiskCriteriaItem("E1", "意外的泄漏，导致广泛的环境损害，并且不可接受的状态维持超过5年，或者事件导致敏感环境遭受大面积的损害，并且不可接受的状态维持超过5年，或者事件导致敏感环境广泛的损害，并且在2-4年内能修复至可接受的状态","无"));
            _envCriterias.Add(new RiskCriteriaItem("E2", "事件导致非敏感环境遭受大面积的损害，并且不可接受的状态维持超过5年，或者事件导致敏感环境大量的损害，并且在2-4年内能修复至可接受的状态，或者事件导致非敏感环境广泛的损害，并且在2-4年内能修复至可接受的状态， 或者事件导致敏感环境广泛的损害，并且可以在1年内修复至可接受的状态", "无"));
            _envCriterias.Add(new RiskCriteriaItem("E3", "事件导致非敏感环境大面积的损害，并且在2-4年内能修复至可接受的状态，或者事件导致非敏感环境广泛的损害，并且可以在1年内修复至可接受的状态，或者事件导致敏感环境大面积的损害，并且可以在1年内修复至可接受的状态，或者事件导致敏感环境广泛的损害，并且可以在数月内修复至可接受的状态", "0.000001"));
            _envCriterias.Add(new RiskCriteriaItem("E4", "事件导致非敏感环境大面积的损害，并且可以在1年内修复至可接受的状态，或者事件导致敏感环境局部损害，并且可以在1年内修复至可接受的状态，或者事件导致非敏感环境广泛的损害，并且可以在数月内修复至可接受的状态，或者事件导致敏感环境大面积的损害，并且可以在数月内修复至可以接受的状态", "0.00001"));
            _envCriterias.Add(new RiskCriteriaItem("E5", "事件导致非敏感环境局部损害，并且可以在1年内修复至可接受的状态，或者事件导致非敏感环境大面积损害，并且可以在数月内修复至可接受的状态，或者事件导致敏感环境局部损害，并且可以在数月内修复至可接受的状态，或者事件导致敏感环境大面积损害，并且可以在数日或数周内修复至可接受的状态", "0.0001"));
            _envCriterias.Add(new RiskCriteriaItem("E6", "事件导致非敏感环境局部损害，并且可以在数月内修复至可接受的状态，或者事件导致就近区域的敏感环境损害，并且可以在数月内修复至可接受的状态，或者事件导致大面积非敏感环境损害，并且可以在数日或数周内修复至可接受的状态，或者事件导致敏感环境局部损害，并且可以在数日或数周内修复至可接受的状态", "0.001"));
            _envCriterias.Add(new RiskCriteriaItem("E7", "事件导致就近的非敏感环境损害，并且可以在数周月修复至可接受的状态，或者事件导致非敏感环境局部损害，并且可以在数日或数周内修复至可接受的状态，或者事件就近的敏感环境损害，并且可以在数日或数周内修复至可接受的状态", "0.01"));
            _envCriterias.Add(new RiskCriteriaItem("E8", "事件导致就近的非敏感环境损害，并且可以在数日或数周内修复至可接受的状态", "0.1"));
            _businessCriterias.Add(new RiskCriteriaItem("B1", "多于100亿元","无"));
            _businessCriterias.Add(new RiskCriteriaItem("B2", "处于50亿元和100亿元之间", "无"));
            _businessCriterias.Add(new RiskCriteriaItem("B3", "处于5亿元和50亿元之间", "0.00001"));
            _businessCriterias.Add(new RiskCriteriaItem("B4", "处于1亿元和5亿元之间", "0.0001"));
            _businessCriterias.Add(new RiskCriteriaItem("B5", "处于5百万元和1亿元之间", "0.001"));
            _businessCriterias.Add(new RiskCriteriaItem("B6", "处于50万元和5百万元之间", "0.01"));
            _businessCriterias.Add(new RiskCriteriaItem("B7", "处于5万元和50万元之间", "0.1"));
            _businessCriterias.Add(new RiskCriteriaItem("B8", "少于5万元", "1"));
        }
        public RiskCriteria(List<RiskCriteriaItem> list1, List<RiskCriteriaItem> list2, List<RiskCriteriaItem> list3){
            _safeCriterias = list1;
            _envCriterias = list2;
            _businessCriterias = list3;
        }

        public List<RiskCriteriaItem> SafeCriterias{
            get { return _safeCriterias; }
            set { _safeCriterias = value; }
        }

        public List<RiskCriteriaItem> EnvCriterias{
            get { return _envCriterias; }
            set { _envCriterias = value; }
        }

        public List<RiskCriteriaItem> BusinessCriterias{
            get { return _businessCriterias; }
            set { _businessCriterias = value; }
        }
    }
}
